Conditional page breaks in SSRS 您所在的位置:网站首页 how can i achieve conditional page breaks Conditional page breaks in SSRS

Conditional page breaks in SSRS

2023-08-24 00:43| 来源: 网络整理| 查看: 265

 

Having a conditional page break and the right totals at the end of each group is more tricky

Lets suppose you have a report with 2 groups and 1 detail.

You also have a pagebreak parameter defining in which group page break will occur. O= no break, 1 = break on group1, 2= break on group 2

Your report without page breaks would look like this:

----------------------------

Header

Group1Header

Group2Header

Detail

Group2Footer(SUM)

Group1Footer(SUM)

Footer(Grand Total)

---------------------------

 

To make the custom page breaks you have to have twice each group plus one for grand total.

Your report now will look like this

----------------------------

Header

Group1Header (controls page break, contains group1 headers)

Group2Header (controls page break, contains group2 headers)

Group1_2_Header (contains group1 headers)

Group2_2_Header (contains group2 headers)

Detail (contains detail and measure)

Group2_2_Footer(SUM of group2)

Group1_2_Footer(SUM of group1)

Group_Grand_total_Footer(report grand total)

---------------------------

 

For Group1Header and Group2Header you set the page break value after the end of each group and set the right group values

Group1Header : =Iif(Parameters!pagebreak.Value>0,Fields!Group1.Value,"")

Group2Header : =Iif(Parameters!pagebreak.Value>1,Fields!Group2.Value,"") 

 

Below is the code to control visibility of each part of the report

 

Group1Header : =Parameters!pagebreak.Value < 1 'hidden when no page break occurs

Group2Header : =Parameters!pagebreak.Value < 2 'hidden when no page break occurs

Group1_2_Header : =Parameters!pagebreak.Value >0 'hidden when page break for group 1 occurs

Group2_2_Header : =Parameters!pagebreak.Value >1 'hidden when page break for group 2 occurs

Group2_2_Footer(SUM) : = NOT(

Iif(Parameters!pagebreak.Value>1,RowNumber("Group2"),RowNumber("Group2_2")) = 

Iif(Parameters!pagebreak.Value>1,CountRows("Group2"),CountRows("Group2_2"))

)

Group1_2_Footer(SUM) : = NOT(

Iif(Parameters!pagebreak.Value>0,RowNumber("Group1"),RowNumber("Group1_2")) = 

Iif(Parameters!pagebreak.Value>0,CountRows("Group1"),CountRows("Group1_2"))

)

Group_Grand_total_Footer(SUM) : = NOT(

CountRows("table1") = RowNumber("table1")

)

 

The code below is to display the right totals SUM for measure, for each group

 

Group2_2_Footer(SUM) : =Iif(Parameters!pagebreak.Value>1,SUM(Fields!measure.Value,"Group2"),SUM(Fields!measure.Value))

Group1_2_Footer(SUM) : =Iif(Parameters!pagebreak.Value>0,SUM(Fields!measure.Value,"Group1"),SUM(Fields!measure.Value)) 

Group_Grand_total_Footer(SUM) : =Sum(Fields!measure.Value,"table1")

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有